﻿// -----------------------------------------------------------------------
// <copyright file="ISubjectService.cs" company="AGR">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------

namespace AGR.Services.Course
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using AGR.Model;
    using System.Linq.Expressions;

    /// <summary>
    /// TODO: Update summary.
    /// </summary>
    public interface ISubjectService : IDisposable
    {
        Subject GetSubject(string subjectCode);
        Subject GetSubject(Expression<Func<Subject, bool>> predicate);

        IList<Subject> GetAllSubjects();
        IList<Subject> GetAllSubjects(Expression<Func<Subject, bool>> predicate);
        IList<string> GetSubjectsList();

        ActionResult AddSubject(Subject subject);
        ActionResult UpdateSubject(Subject subject);
        ActionResult DeleteSubject(string subjectCode);
        ActionResult DeleteSubject(Expression<Func<Subject, bool>> predicate);
    }
}
